home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / mcomm / ansivid.hpp < prev    next >
C/C++ Source or Header  |  1994-10-02  |  7KB  |  138 lines

  1.  
  2. /////////////////////////////////////////////////////////////////////////////
  3. //                                                                         //
  4. //  ANSIVID.HPP - header file for C++ programs using MCOMM video routines. //
  5. //                                                                         //
  6. //    Mike Dumdei,  6 Holly Lane,  Texarkana TX  75503    (c) 1989-92      //
  7. //                                                                         //
  8. /////////////////////////////////////////////////////////////////////////////
  9.  
  10. #if !defined(ANSIVID_HPP)
  11. #define ANSIVID_HPP
  12.  
  13. #ifndef MCOMM
  14.   #define _C_ cdecl
  15.   #define _V_ volatile
  16.   #define _F_ far
  17.   #if (__TURBOC__ && __HUGE__)
  18.     #define _N_
  19.   #else
  20.     #define _N_ near
  21.   #endif
  22.   #define MCOMM
  23. #endif
  24.  
  25.   extern "C" {
  26. /////////////////////////////////////////////////////////////////
  27. //  GLOBAL VIDEO VARIABLES DECLARED IN THE 'INITVID' FUNCTION  //
  28. /////////////////////////////////////////////////////////////////
  29. extern int _N_ v_struct;            // pointer to global video variables
  30. extern int _N_ v_seg;               // SEG address of video ram memory
  31. extern char _N_ v_mode;             // current video mode
  32. extern char _N_ v_page;             // current video page
  33. extern unsigned long _N_ v_wndsz;   // current window dimensions (TLBR hex)
  34. extern unsigned int _N_ v_btmrgt;   // current window btm right
  35. extern unsigned char _N_ v_rgt;     // current window rightmost column
  36. extern unsigned char _N_ v_btm;     // current window btm row
  37. extern unsigned int _N_ v_toplft;   // current window top left
  38. extern unsigned char _N_ v_lft;     // current window leftmost column
  39. extern unsigned char _N_ v_top;     // current window top row
  40. extern unsigned long _N_ vs_wndsz;  // max dimensions for entire screen
  41. extern unsigned int _N_ vs_btmrgt;  // max btm right position
  42. extern unsigned int _N_ vs_toplft;  // max top left position
  43. extern char _N_ v_scrlm;      // scroll mode (1=scroll, 0=cursor wrap)
  44. extern char _N_ v_cntrlm;     // control mode (1=exec cntrls, 0=dsplay)
  45. extern char _N_ v_textm;      // text mode (1= \n == \r\n, 0= \n == \n)
  46. extern char _N_ v_ansi;       // ansi mode (1=use ANSI, 0=see garbage)
  47. extern char _N_ v_color;      // current atrib to use when displying chars
  48. extern char _N_ v_snow;       // snow flag (1=wait for retrace, 0=no wait
  49. extern char _N_ v_bios;       // bios flag (1=use BIOS, 0=direct writes)
  50. extern char _N_ v_ansiseq;    // flag showing ANSI sequence in progress
  51. extern char _N_ v_wrel;       // window locs relative to window upr/lft if 1
  52. extern char _N_ vs_wrel;      // screen locs relative to window upr/lft if 1
  53. extern char _N_ v_cga;        // set to 1 if CGA adaptor detected
  54. extern char _N_ v_bksp;       // 1=destructive backspace, 0=non-destructive
  55.  
  56. /////////////////////////////////////////////////////////////////
  57. //  LOW LEVEL FUNCTION DECLARATIONS                            //
  58. /////////////////////////////////////////////////////////////////
  59. int initvid(void);                      // initialize video
  60. void loc(int r, int c);                 // locate cursor at r,c
  61. void d_strat(int r, int c, char *str);  // display string at r,c
  62. void d_str(char *str);                  // disp string at curpos
  63. void d_chat(int r, int c, char ch);     // disp char at r,c
  64. void d_ch(char ch);                     // disp char at curpos
  65. void d_msgat(int r, int c, int atrb, char *str);  // disp msg at r,c
  66. void d_atrbat(int r, int c, int atrb, int n);     // r,c,atrb,nlocs
  67. void d_nchat(int, int, char, int, int, int);      // r,c,ch,atrb,n,dir
  68. int rd_scrn(void);                      // read atrb/char at curpos
  69. void cls(void);                         // clear window
  70. void scrlup(int n);                     // scroll up n rows
  71. void scrldn(int n);                     // scroll down n rows
  72. void setcurloc(int);                    // set curloc, hibyte=r,lobyte=c
  73. int getcurloc(void);                    // get curloc, hibyte=r, lobyte=c
  74. void setcursiz(int);                    // set cursor shape
  75. int getcursiz(void);                    // get cursor shape
  76. void setvmode(int);                     // set video mode
  77. int getvmode(void);                     // get video mode
  78. void setvpage(int);                     // set video page
  79. int getvpage(void);                     // get video page
  80. void setvbordr(int);                    // set video border
  81. void moveblk(int, int, int, int, char *, int);  // r,c,nrow,ncols,buf,dir
  82. void pu_scrnd(int, int, int, int, char *);      // r,c,nrows,ncols,buf
  83. void po_scrnd(char *);                  // buf
  84. int pushscrn(int, int, int, int);       // r,c,nrows,ncols
  85. int popscrn(void);
  86. void fpu_scrnd(int, int, int, int, char _F_ *); // r,c,nrows,ncols,farbuf
  87. void fpo_scrnd(char _F_ *);             // farbuf
  88. int fpushscrn(int, int, int, int);      // r,c,nrows,ncols
  89. int fpopscrn(void);
  90. void d_msgatd(int, int, int, char *);   // r,c,atrib,string
  91. void scrlupat(int, int, int, int, int); // top,left,btm,rgt,nrows
  92. void scrldnat(int, int, int, int, int); // top,left,btm,rgt,nrows
  93. void d_scrd(int, int, char *);          // r,c,screendata
  94. char *rd_scrnd(int, int, int, char *);  // r,c,nbtyes,buf
  95. void x_ansi(char *ansi_str);            // default unrecognized ANSI seq hdlr
  96.   }
  97.  
  98. /////////////////////////////////////////////////////////////////
  99. //  C++ SPECIFIC DECLARATIONS                                  //
  100. /////////////////////////////////////////////////////////////////
  101.  
  102. inline void SetWindowSize(int Top, int Lft, int Btm, int Rgt)
  103.  { v_toplft = (Top << 8) | Lft, v_btmrgt = (Btm << 8) | Rgt; }
  104. inline void SetScreenSize(int Top, int Lft, int Btm, int Rgt)
  105.  { vs_toplft = (Top << 8) | Lft, vs_btmrgt = (Btm << 8) | Rgt; }
  106. inline void Scroll(int NbrLines = 1, int Up = 1)
  107.  { if (Up >= 0) scrlup(NbrLines); else scrldn(NbrLines); }
  108. inline void PosCursor(int Row, int Col = -1)
  109.  { if (Col >= 0) loc(Row, Col); else setcurloc(Row); }
  110. inline int PosCursor()
  111.  { return getcurloc(); }
  112. inline void CursorShape(int ScanHiLo)
  113.  { setcursiz(ScanHiLo); }
  114. inline int CursorShape()
  115.  { return getcursiz(); }
  116. inline void ClearWindow()
  117.  { cls(); }
  118. inline void Display(int Row, int Col, char *String)
  119.  { d_strat(Row, Col, String); }
  120. inline void Display(char *String)
  121.  { d_str(String); }
  122. inline void Display(int Row, int Col, char Ch)
  123.  { d_chat(Row, Col, Ch); }
  124. inline void Display(char Ch)
  125.  { d_ch(Ch); }
  126. inline void Display(int Row, int Col, int Attrib, char *String)
  127.  { d_msgat(Row, Col, Attrib, String); }
  128. inline void Display(int Color, char *String)
  129.  { v_color = (char)Color, d_str(String); }
  130. inline void Fill(int Row, int Col, char Ch, int Attrib, int NbrLocs,
  131.   int Direction = 1)
  132.  { d_nchat(Row, Col, Ch, Attrib, NbrLocs, Direction); }
  133. inline void Paint(int Row, int Col, int Attrib, int NbrLocs)
  134.  { d_atrbat(Row, Col, Attrib, NbrLocs); }
  135.  
  136. #endif          // ANSIVID_HPP
  137.  
  138.